package cxydmmszl.chapter05.t085.simple;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 * <li style="color: red;">Prob</li>
 * 括号字符串的有效性
 * <li style="color: green;">Desc</li>
 * 给定一个字符串 str，判断是不是整体有效的括号字符串(整体有效：
 * 即存在一种括号匹配方案，使每个括号字符均能找到对应的反向括号，且字符串中不包含非括号字符)。
 * <li style="color: green;">Input</li>
 * 输入包含一行，代表 str（1≤length(str)≤10^5）。
 * <li style="color: green;">Output</li>
 * 输出一行，如果 str 是整体有效的括号字符串，请输出 “YES”，否则输出 “NO”。
 * <li style="color: blue;">Link</li> CD126
 *
 * @author habitplus
 * @since 2021-09-12 16:25
 */
public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str = br.readLine();
        br.close();

        boolean ans = valid(str);
        System.out.println(ans ? "YES" : "NO");
    }

    private static boolean valid(String str) {
        if (str == null || str.length() == 0) {
            return false;
        }

        char[] chs = str.toCharArray();
        int cnt = 0;
        for (char c : chs) {
            if (c == '(') cnt++;
            else if (c == ')') cnt--;
            else return false;
        }
        return cnt == 0;
    }
}
